This invention relates to determining the distribution of interpolation pulses to the axes of a numerically controlled machine tool and other apparatus such as computer graphics devices.
A simple and accurate approach to controlling the feedrate on numerical control is desired. The accuracy required (for instance on the order of 32 bits) and the time available to do the calculation (for instance, 20 microseconds) are such that there is no time to perform conventional arithmetic with multiplications and divisions to do the interpolation function. For linear interpolations the information available consists of the coordinates of the starting and end points. From this information, the pulse rates to the individual axes must be derived such that the axes coordinates change in a linear fashion up to the desired end point. For circular interpolation, the information available consists of the arc center offset and the direction of motion. For both types of interpolation, a single output pulse to the axes corresponds to a unit of incremental motion along the axes.
The four known approaches used to date are the DDA (digital differential analyzer), the MIT approach, the Saita Function generator, and the algebraic solution approach. Of these, the first two evolved from the extension of the equivalent of analog integrators to the DDA in the solution of differential equations that describe the curve. The accuracy of the DDA and MIT approaches is dependent on the coordinate locations. Further, the circle-generating DDA in reality generates a spiral instead of a circle, thus creating the problem of "completing the arc" by artificially injecting a few pulses in the direction of the incomplete axis. This generates a "flat" surface at the end of the arc. The Saita Function generator method separates the X and Y functions by introducing a third variable T, and expressing the now independent X,Y variables as arithmetic progressions of T. The algebraic computation method is inefficient in terms of hardware, expense, and the time required to solve the differential equation.